﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace Presentation
{
    public partial class frm_MDI : Form
    {
        DangNhapBUS dnBUS = new DangNhapBUS();
        DangNhapDTO dnDTO = new DangNhapDTO();
        frm_DangNhap fdn = null;
        frm_DoiMatKhau fcp = null;
        private int childFormNumber = 0;

        public frm_MDI()
        {
            InitializeComponent();
        }
        private void frm_MDI_Load(object sender, EventArgs e)
        {
            //frm_KetNoiDatabase db = new frm_KetNoiDatabase();
            //db.ShowDialog();

            //đóng hết form con đang mở
            //foreach (Form f in this.MdiChildren)
            // {
            //     f.Close();
            // }
            // this.Refresh();
            DisableMenuLogin(false,dnDTO.Maquyen);
          
        }
        #region
        //Cac ham xu lu login va phan quyen
        private void DisableMenuLogin(bool logged, string maquyen)
        {
           
            //Nếu đăng nhập thành công thì tắt menu đăng nhập
            mnDangNhap.Enabled =!logged;
            //Nếu đăng nhập thành công thì bật menu đăng xuất
            mnDangXuat.Enabled = logged;
            //Mặc định nếu đăng nhập thành công thì bật hết các menu còn lại
       
            mnDoiMatKhau.Enabled = logged;
            mnThoat.Enabled = logged;
            mnChucNang.Enabled = logged;
            mnNhanLich.Enabled = logged;
            mnBanVe.Enabled = logged;
            mnGhiNhan.Enabled = logged;
            mnTraCuu.Enabled = logged;
            mnBaoCaoThang.Enabled = logged;
            mnBaoCaoNam.Enabled = logged;
            mnQuanLy.Enabled = logged;
            mnSanBay.Enabled = logged;
            mnTuyenBay.Enabled = logged;
            mnChuyenBay.Enabled = logged;
            mnQuiDinh.Enabled = logged;
            itemQDChuyenBay.Enabled = logged;
            itemQDSLHangVe_Gia.Enabled = logged;
            itemQDThoiHanDatVe.Enabled = logged;
            //phân quyền theo user
            switch (maquyen)
            {
                case "Q001": break;
                case "Q002": HienThiQuyenUser(); break;
            }
        }
        private void HienThiQuyenUser()
        {
            mnQuanLy.Enabled = false;
            mnSanBay.Enabled = false;
            mnTuyenBay.Enabled = false;
            mnChuyenBay.Enabled = false;
            mnQuiDinh.Enabled = false;
            itemQDChuyenBay.Enabled = false;
            itemQDSLHangVe_Gia.Enabled = false;
            itemQDThoiHanDatVe.Enabled = false;
        }
        #endregion
        private void ShowNewForm(object sender, EventArgs e)
        {
            Form childForm = new Form();
            childForm.MdiParent = this;
            childForm.Text = "Window " + childFormNumber++;
            childForm.Show();
        }
     
   
       


        private void mnThoat_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

       
       

        private void mnChuyenBay_Click(object sender, EventArgs e)
        {
            frm_ChuyenBay cb = new frm_ChuyenBay();
            cb.MdiParent = this;
            cb.Show();
        }

        private void mnSanBay_Click(object sender, EventArgs e)
        {
            frm_SanBay sb = new frm_SanBay();
            sb.MdiParent =this;
            sb.Show();
        }

        private void mnTuyenBay_Click(object sender, EventArgs e)
        {
            frm_TuyenBay tb = new frm_TuyenBay();
            tb.MdiParent = this;
            tb.Show();
        }

        private void mnDangNhap_Click(object sender, EventArgs e)
        {   
            int numsErrorPassword = 0; //1
        cont:
            if (fdn == null || fdn.IsDisposed) //2
                fdn = new frm_DangNhap();   //3
            if (fdn.ShowDialog() == DialogResult.OK)    //4
            {
                string user = fdn.txtHoTen.Text;
                string pass = fdn.txtMatKhau.Text;
                if (user.Equals(""))    //5
                {
                    fdn.lblStatus.Text = "Tên đăng nhập không hợp lệ";  //6
                    goto cont;  //7
                }
                if (pass.Equals(""))    //8
                {
                    fdn.lblStatus.Text = "Mật khẩu không hợp lệ";   //9
                    goto cont;  //10
                }
                dnDTO = dnBUS.LayThongTinUser(user);    //11
                if (dnDTO.Hoten.Equals("")) //12
                {
                    fdn.lblStatus.Text = "Tài khoản đăng nhập không tồn tại";   //13
                    goto cont;  //14
                }
                if(dnDTO.Password!= pass)   //15
                {
                    fdn.lblStatus.Text="Mật khẩu sai";  //16
                    numsErrorPassword++;    //17
                    if(numsErrorPassword==3)    //18
                        this.Close();   //19
                    goto cont;  //20
                }
                DisableMenuLogin(true,dnDTO.Maquyen);   //21
                //Gán trạng thái cho menu
                statusDangNhap.Text = dnDTO.Tenquyen +" :    "+ dnDTO.Hoten;
            }
            //22
        }

        private void mnDoiMatKhau_Click(object sender, EventArgs e)
        {
            Cont:
            if (fcp == null || fcp.IsDisposed)
                fcp = new frm_DoiMatKhau();
            if (fcp.ShowDialog() == DialogResult.OK)
            {
                string oldpass = fcp.txtOldPass.Text;
                string newpass = fcp.txtNewPass.Text;
                string renewpass = fcp.txtRenew.Text;
                if (oldpass.Equals("") || newpass.Equals("") || renewpass.Equals(""))
                {
                    fcp.lblThongBao.Text = "Ban chua dien day du thong tin";
                    goto Cont;
                }
                if (newpass != renewpass)
                {
                    fcp.lblThongBao.Text = "Mat khau khong trung khop";
                    goto Cont;
                }
                if (oldpass != dnDTO.Password)
                {
                    fcp.lblThongBao.Text = "Mat khau cu khong dung";
                    goto Cont;
                }
                //dnBUS.doipass = newpass;
                //dnBUS.doipass(dnDTO);
  
                 MessageBox.Show("doi thanh cong");
                 mnDangXuat_Click(sender, e);
                
            }
            
        }

        private void mnDangXuat_Click(object sender, EventArgs e)
        {
            DangNhapDTO dnDTO=new DangNhapDTO();
            DisableMenuLogin(false,null);
            mnDangNhap_Click(sender, e);
        }

       
     

       
                
     
       


      


       
    }

    }

